Este trabajo pretende mostrar la cantidad de registros de orquídeas por área silvestre protegida de Costa Rica.
library(sf)
library(leaflet)
library(leaflet.extras)
library(leafem)
library(dplyr)
library(DT)
Dentro de las opciones de la carga de datos de orquídeas se especifican las columnas a las cuales corresponden la longitud y latitud, puesto que el archivo es un csv.
# Carga de los datos de orquideas
orquideas <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/orchidaceae-cr-registros.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
# Carga de la capa de áreas silvestres protegidas
ASP <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/sinac/asp/asp-wgs84.geojson",
quiet = TRUE
)
# Asignación del sistema de coordenadas
st_crs(orquideas) = 4326
st_crs(ASP) = 4326
# Omisión de celdas vacías
orquideas$species[orquideas$species == ""] <- "orquideas"
# Cambio de tipo de dato
orquideas <-
orquideas %>%
mutate(coordinateUncertaintyInMeters = as.numeric(coordinateUncertaintyInMeters)) %>%
mutate(eventDate = as.Date(eventDate, "%Y-%m-%d"))
En esta etapa se descartan los registros con un valor mayor que 1000 y aquellos con valor vacío o NA en el campo species.
Primero, se muestra la cantidad original de registros.
cat("Cantidad original de registros: ", nrow(orquideas))
## Cantidad original de registros: 29863
Luego, se filtran los datos.
# Filtración de datos
orquideas <- orquideas %>%
filter(!is.na(coordinateUncertaintyInMeters) & coordinateUncertaintyInMeters <= 1000)%>%
filter(species!="orquideas")
cat("Cantidad de registros después de descartar los de alta incertidumbre en la ubicación: ", nrow(orquideas))
## Cantidad de registros después de descartar los de alta incertidumbre en la ubicación: 646
Seguidamente, se repite el mismo proceso para las áreas silvestres protegidas
cat("Cantidad original de registros de ASP: ", nrow(ASP))
## Cantidad original de registros de ASP: 171
# Filtración de datos
ASP <- ASP %>%
filter(descripcio!="Area Marina de Manejo" & descripcio!="Area marina protegida")
cat("Cantidad de registros después de descartar las áreas marinas: ", nrow(ASP))
## Cantidad de registros después de descartar las áreas marinas: 148
# Utilización de st_join()
ASP_registros <-
ASP %>%
st_make_valid() %>%
st_join(orquideas) %>%
group_by(nombre_asp) %>%
summarize(especies = n())
# Asignación de sistema de coordenadas
st_crs(ASP_registros) = 4326
# Creación de paletas de colores morados
pal_especies <-
colorNumeric(palette = "RdPu",
domain = ASP_registros$especies,
na.color = "transparent")
# Mapa
leaflet() %>%
setView(lng = -84.0, lat = 10.0, zoom = 7) %>%
addProviderTiles(providers$CartoDB.Positron, group = "Grey Open Street Map") %>%
addPolygons(
data = ASP_registros,
fillColor = ~ pal_especies (ASP_registros$especies),
fillOpacity = 0.9,
stroke = TRUE,
color = "black",
weight = 1,
popup = paste(
paste(
"<strong>Localidad:</strong>",
ASP_registros$nombre_asp
),
paste(
"<strong>Cantidad de especies de orquídeas:</strong>",
ASP_registros$especies
),
sep = '<br/>'
),
group = "Localidad y especies"
) %>%
addLayersControl(baseGroups = c("Grey Open Street Map"),
overlayGroups = c("Localidad y especies")) %>%
addLegend(
position = "bottomleft",
pal = pal_especies,
values = ASP_registros$especies,
group = "Localidad y especies",
title = "Cantidad de <br> especies de <br> orquídeas")